home *** CD-ROM | disk | FTP | other *** search
/ Cracking 2 / Cracking II..iso / Tools / ApiHooks 2.2 / hdk / ApiHooks.inc < prev    next >
Encoding:
Text File  |  2000-04-05  |  3.3 KB  |  117 lines

  1. ;ApiHook.inc - constants and structures for Hook libraries
  2.  
  3. ;standard-----------------------------------------------------------------------
  4.    HOOK_EXPORT       EQU     00001B
  5.    HOOK_IMPORT       EQU     00010B
  6.    HOOK_BY_ADDRESS   EQU     00100B
  7.    HOOK_HARD         EQU     01000B
  8.    HOOK_NO_UNBIND    EQU     10000B
  9.  
  10.    HOOKS_END         EQU     -1
  11.    HOOKS_DYNAMIC     EQU     -2
  12.  
  13.    ALL_MODULES       EQU     -1
  14.  
  15.    ADDR_CONTENTS     STRUCT  DWORD
  16.     ReturnWhere      LPDWORD ?
  17.     ReturnWhat       DWORD   ?
  18.    ADDR_CONTENTS     ENDS
  19.  
  20.    PADDR_CONTENTS    TYPEDEF PTR ADDR_CONTENTS
  21.  
  22.    API_UNHOOK        STRUCT  DWORD
  23.     MaxNoAddr        DWORD   ?
  24.     CurNoAddr        DWORD   0
  25.     WhereWhat        PADDR_CONTENTS ?
  26.    API_UNHOOK        ENDS
  27.  
  28.    PAPI_UNHOOK       TYPEDEF PTR API_UNHOOK
  29.  
  30.    API_HOOK          STRUCT  DWORD
  31.     ModuleExport     LPCSTR      ?
  32.     ApiNameOrOrd     LPCSTR      ?
  33.     dwFlags          DWORD       ?
  34.     ModuleImport     LPCSTR      ?
  35.     UnhookAddresses  PAPI_UNHOOK ?
  36.     HookAddress      LPVOID      ?
  37.    API_HOOK          ENDS
  38.  
  39.    PAPI_HOOK         TYPEDEF PTR API_HOOK
  40.  
  41.    ErrorSuccess      = 0
  42.    ErrorException    = 1
  43.    ErrorOpenProcess  = 2
  44.    ErrorRemoteAlloc  = 3
  45.    ErrorRemoteExec   = 4
  46.    ErrorRemoteFree   = 5
  47.    ErrorCommandLine  = 6
  48.    ErrorCreateProcess= 7
  49.    ErrorProcNotFound = 8
  50.    ErrorTimeOut      = 9
  51.   
  52.    H_E               = HOOK_EXPORT
  53.    H_I               = HOOK_IMPORT
  54.    H_B               = HOOK_BY_ADDRESS
  55.    H_H               = HOOK_HARD
  56.    HOOK_EXACT        = HOOK_EXPORT OR HOOK_IMPORT
  57.    HOOK_ALL          = HOOK_EXPORT OR HOOK_BY_ADDRESS
  58.  
  59. ;useful-------------------------------------------------------------------------
  60.  
  61.    EndHooks          EQU DWORD HOOKS_END
  62.  
  63.    BeginHooks MACRO __nomen
  64.            PUBLIC  __nomen
  65.            ALIGN 4
  66.           __nomen LABEL API_HOOK
  67.            ENDM
  68.  
  69.    MkHook  MACRO  __symbol, __module_export, __procedure, __method, __module_import
  70.            IFNB <__symbol>
  71.             __symbol LABEL API_HOOK
  72.            ENDIF
  73.            IFNB <__module_export>
  74.             DWORD s&__module_export
  75.            ELSE
  76.             DWORD sKERNEL32
  77.            ENDIF
  78.            IFDEF  s&__procedure
  79.             DWORD s&__procedure
  80.            ELSE
  81.             DWORD __procedure
  82.            ENDIF
  83.            IFNB <__method>
  84.             DWORD __method
  85.            ELSE
  86.             DWORD HOOK_ALL
  87.            ENDIF
  88.            IFNB <__module_import>
  89.             IFDEF s&__module_import
  90.              DWORD s&__module_import
  91.             ELSE
  92.              DWORD __module_import
  93.             ENDIF
  94.            ELSE
  95.             DWORD ALL_MODULES
  96.            ENDIF
  97.            IFDEF Unhook&__procedure
  98.             DWORD Unhook&__procedure
  99.            ELSE
  100.             DWORD NULL
  101.            ENDIF
  102.            DWORD New&__procedure
  103.            ENDM
  104.  
  105.   MkUnhook MACRO  __procedure, __maxunhooks
  106.            LOCAL __buffer
  107.            ALIGN 4
  108.           __buffer LABEL ADDR_CONTENTS
  109.            REPT  __maxunhooks*((SIZEOF ADDR_CONTENTS)/(SIZEOF DWORD))
  110.            DWORD 0
  111.            ENDM
  112.            Unhook&__procedure LABEL API_UNHOOK
  113.            DWORD __maxunhooks
  114.            DWORD 0
  115.            DWORD OFFSET __buffer
  116.            ENDM
  117. ;-------------------------------------------------------------------------------